var AdminValidator = function () {
    return {
        initDefaults: function () {
            $.validator.setDefaults({
                ignore: "",
                errorElement: 'span',
                errorClass: 'input-error',
                highlight: function (element) {
                },
                unhighlight: function (element) {
                    // var p = element.parents(".wpp-form-line");
                    // if(p[0]){
                    //     p.find(".input-error").remove();
                    // }
                    //
                    // p  = element.parents(".tab-reasons");
                    // if(p[0]){
                    //     p.find(".input-error").remove();
                    // }
                },
                errorPlacement: function (error, element) {
                    var p = element.parents(".wpp-form-line");
                    if (p[0]) {
                        error.appendTo(p);
                        return;
                    }

                    p = element.parents(".tab-reasons");
                    if (p[0]) {
                        error.appendTo(p);
                        return;
                    }
                }
            });
            jQuery.validator.addMethod("notEqTo", function (value, element, param) {
                return $(param).val() != value;
            }, "");
            jQuery.validator.addMethod("requiredDepen", function (value, element, param) {
                var depen = $.trim($(param).val());
                if (depen == '' && value == '') {
                    return false;
                }
                return true;
            }, "");
            jQuery.validator.addMethod("requireDependList", function (value, element, param) {
                var depends = param.split(',');
                for (var i = 0; i < depends.length; ++i) {
                    if (!$.trim($(depends[i]).val())) {
                        return false;
                    }
                }
                return true;
            }, "");

            jQuery.validator.addMethod("ZHName", function (value, element, bool) {
                if (!value) {
                    return true;
                }
                return /^[\u4e00-\u9fa5]{0,}$/.test(value);
            }, "");
            jQuery.validator.addMethod("mobile", function (value, element, bool) {
                if (!value) {
                    return true;
                }

                return /^1[3|4|5|7|8|9]\d{9}$/.test(value);
            }, "");
            jQuery.validator.addMethod("IDCard", function (value, element, param) {
                if (!value) {
                    return true;
                }
                return /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(value);
            }, "");
            jQuery.validator.addMethod("requireDependOn", function (value, element, param) {
                if ($(param).is(":checked")) {
                    return !!value;
                }
                return true;
            }, "");
            jQuery.validator.addMethod("requireWhenEnabled", function (value, element, param) {
                if (!$(element).is(":disabled")) {
                    return !!value;
                }
                return true;
            }, "");
        }
    };
}();

AdminValidator.initDefaults();